home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
HAMRADIO
/
LOGBOOK.ZIP
/
REALTIME.PRG
< prev
next >
Wrap
Text File
|
1986-06-12
|
3KB
|
97 lines
*REALTIME, GETS REAL TIME FROM CLOCK (c) G3ZCZ 1986
CALL dummy
STORE PEEK(61455) TO min
STORE PEEK(61456) + gmt TO hour
IF hour > 0 .AND. hour < 24
STORE 0 TO fdate
ELSE
IF hour < 0
STORE hour + 24 TO hour
STORE -1 TO fdate
ELSE
STORE hour - 24 TO hour
STORE 1 TO fdate
ENDIF
ENDIF
STORE ' ' TO ntime
STORE STR(hour,2)+ STR(min,2) TO mtime
STORE 1 TO cpointer
DO WHILE cpointer < 5
IF $(mtime,cpointer,1) = ' '
STORE ntime +'0' TO ntime
ELSE
STORE ntime+$(mtime,cpointer,1) TO ntime
ENDIF
STORE cpointer+1 TO cpointer
ENDDO
STORE $(ntime,2) TO ntime
IF &ntime < &otime
POKE 61440,180,42
SET CALL TO 61440
CALL dummy
STORE PEEK(61454) TO mm
STORE PEEK(61456)*256+PEEK(61455)-1900 TO yy
STORE PEEK(61453) + fdate TO dd
IF dd > 0 .AND dd < 29
* DO NOTHING
ELSE
IF dd < 1
STORE mm - 1 TO mm
IF mm < 1
STORE mm + 12 TO mm
STORE yy - 1 TO yy
ENDIF
DO CASE
CASE mm = 2
IF yy/4 = INT(yy/4)
STORE 29 TO dd
ELSE
STORE 28 TO dd
ENDIF
CASE mm = 4 .OR. mm = 6 .OR. mm = 9 .OR. mm = 11
STORE 30 TO dd
OTHERWISE
STORE 31 TO dd
ENDCASE
ENDIF
DO CASE
CASE mm = 2
IF yy/4 = INT(yy/4)
IF dd > 29
STORE dd - 29 TO dd
STORE mm + 1 TO mm
ENDIF
ELSE
IF dd > 28
STORE dd - 28 TO dd
STORE mm + 1 TO mm
ENDIF
ENDIF
CASE mm = 4 .OR. mm = 6 .OR. mm = 9 .OR. mm = 11
IF dd > 30
STORE dd - 30 TO dd
STORE mm + 1 TO mm
ENDIF
OTHERWISE
IF dd > 31
STORE dd - 31 TO dd
STORE mm + 1 TO mm
ENDIF
ENDCASE
IF mm > 12
STORE mm - 12 TO mm
STORE yy + 1 TO yy
ENDIF
ENDIF
STORE STR(yy,2)+"/"+STR(mm,2)+"/"+STR(dd,2) TO ndate
IF $(ndate,4,1) = ' '
STORE $(ndate,1,3)+'0' + $(ndate,5) TO ndate
ENDIF
IF $(ndate,7,1) = ' '
STORE $(ndate,1,6)+'0' + $(ndate,8) TO ndate
ENDIF
* RESTORE TIME SUBROUTINE
POKE 61440,180,44
ENDIF
RETURN